setlocale() ফাংশনের মাধ্যমে Locale সেট করা
সি প্রোগ্রামিং ভাষায়, setlocale() ফাংশনটি locale সেট করার জন্য ব্যবহৃত হয়। Locale একটি সেটিং যা ভাষা, দেশ, সংস্কৃতি এবং অঞ্চলের নির্দিষ্ট বৈশিষ্ট্য সম্পর্কিত ফরম্যাট, যেমন ডেট এবং সময়ের ফরম্যাট, সংখ্যা ফরম্যাট, এবং মুদ্রার চিহ্ন নির্ধারণ করে।
setlocale() ফাংশনটি সাধারণত স্ট্রিং হ্যান্ডলিং, ডেট/টাইম ফরম্যাটিং, এবং দেশভিত্তিক ফর্ম্যাটিং পরিবর্তন করতে ব্যবহৃত হয়। উদাহরণস্বরূপ, এটি সংখ্যার দশমিক বিভাজক এবং কমা বিভাজক পরিবর্তন করতে পারে, বা ফাইল নাম্বারিং সিস্টেম পরিবর্তন করতে পারে।
সিঙ্কট্যাক্স:
#include <locale.h>
char *setlocale(int category, const char *locale);category: লোকেল ক্যাটেগরি নির্ধারণ করে, যা কি পরিবর্তন করতে চান তা নির্ধারণ করে।LC_ALL: সমস্ত সিস্টেম সেটিংস।LC_COLLATE: সোর্টিং অর্ডার।LC_CTYPE: ক্যারেক্টার শ্রেণীবিন্যাস।LC_MONETARY: মুদ্রা সম্পর্কিত সেটিংস।LC_NUMERIC: সংখ্যার ফরম্যাটিং।LC_TIME: তারিখ এবং সময়ের ফরম্যাটিং।LC_MESSAGES: বার্তা ফরম্যাটিং।
locale: লোকেল সিস্টেমের নাম, যেমন"en_US.UTF-8","fr_FR","de_DE"ইত্যাদি।
যদি locale প্যারামিটারটি """ বা "C" হয়, তাহলে এটি ডিফল্ট লোকেল সেটিংসে ফিরে যাবে।
উদাহরণ ১: সমস্ত ক্যাটেগরি সেট করা
#include <stdio.h>
#include <locale.h>
int main() {
// লোকেল সেট করা সমস্ত ক্যাটেগরি সহ
setlocale(LC_ALL, "en_US.UTF-8");
printf("Locale set to: %s\n", setlocale(LC_ALL, NULL));
return 0;
}এখানে, setlocale(LC_ALL, "en_US.UTF-8") ফাংশনটি সমস্ত ক্যাটেগরি "en_US.UTF-8" লোকেল সেট করতে ব্যবহার করা হয়েছে।
উদাহরণ ২: নির্দিষ্ট ক্যাটেগরি সেট করা
#include <stdio.h>
#include <locale.h>
int main() {
// শুধুমাত্র LC_NUMERIC ক্যাটেগরি সেট করা
setlocale(LC_NUMERIC, "en_US.UTF-8");
// সংখ্যা ফরম্যাট পরিবর্তন হবে
printf("Current locale for numeric formatting: %s\n", setlocale(LC_NUMERIC, NULL));
return 0;
}এখানে, setlocale(LC_NUMERIC, "en_US.UTF-8") শুধুমাত্র সংখ্যা ফরম্যাটিংয়ের জন্য লোকেল সেট করা হয়েছে।
উদাহরণ ৩: LC_TIME ক্যাটেগরি দিয়ে তারিখ ও সময় ফরম্যাট পরিবর্তন
#include <stdio.h>
#include <locale.h>
int main() {
// LC_TIME ক্যাটেগরি সেট করা
setlocale(LC_TIME, "de_DE.UTF-8"); // জার্মান লোকেল
// সিস্টেমের তারিখ এবং সময় ফরম্যাটের আউটপুট
printf("Current locale for time: %s\n", setlocale(LC_TIME, NULL));
return 0;
}এখানে setlocale(LC_TIME, "de_DE.UTF-8") ফাংশনটি তারিখ এবং সময়ের জন্য জার্মান লোকেল সেট করে।
সাধারণভাবে setlocale() ফাংশনটি:
- একটি লোকেল ক্যাটেগরি নির্বাচন করে।
- নির্বাচিত ক্যাটেগরির জন্য ভাষা, সংস্কৃতি এবং দেশভিত্তিক সেটিংস পরিবর্তন করে।
NULLপ্যারামিটার দিলে লোকেল সেটিংস জানতে পারবেন।
setlocale() এর প্যারামিটার ব্যাখ্যা:
category: আপনি যে বিভাগটি পরিবর্তন করতে চান, সেটি নির্ধারণ করবে।locale: স্ট্রিং যা লোকেল সেটিংস নির্ধারণ করে।"C"বা""ব্যবহার করলে ডিফল্ট লোকেল ফিরে যাবে।
সারসংক্ষেপ
setlocale() ফাংশনটি সিস্টেমের লোকেল সেটিংস পরিবর্তন করতে ব্যবহৃত হয়, যা বিভিন্ন ভাষার, সময়ের এবং সংখ্যা সম্পর্কিত ফরম্যাটিং কাস্টমাইজ করার জন্য ব্যবহৃত হয়। এটি অ্যাপ্লিকেশনকে অঞ্চলভিত্তিক বৈশিষ্ট্যগুলির সাথে সামঞ্জস্যপূর্ণ করে তোলে।
| ফাংশন | কাজ | সিঙ্কট্যাক্স |
|---|---|---|
setlocale() | লোকেল সেটিংস পরিবর্তন এবং প্রাপ্ত করা | char *setlocale(int category, const char *locale); |
এটি locale নির্ধারণের জন্য একটি শক্তিশালী এবং কার্যকরী উপায়, বিশেষ করে আন্তর্জাতিকাইজেশন এবং স্থানীয়করণ (i18n ও l10n) কাজের জন্য।
Read more